package com.xuecheng.content.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xuecheng.api.content.model.CourseBaseDTO;
import com.xuecheng.api.content.model.qo.QueryCourseModel;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import com.xuecheng.content.entity.CourseBase;

/**
 * <p>
 * 课程基本信息 服务类
 * </p>
 *
 * @author itcast
 * @since 2021-12-07
 */
public interface CourseBaseService extends IService<CourseBase> {

//    List<CourseBase> queryAll();

    /*
     * @Description //分頁查詢課程的基本信息
     * @Date 2021/12/8 20:07
     * @Param params PageRequestParams 用於分頁用的數據
     * model QueryCourseModel 查詢的條件
     * @return  PageVO<CourseBaseDTO> 用於封裝查詢到的數據
     **/
    PageVO<CourseBaseDTO> queryCourseList(PageRequestParams params, QueryCourseModel model, Long companyId);



    //新增课程
    /**
     * @Description //  新增课程查询
     * @Date 2021/12/9 19:57
     * @Param [courseBaseDTO] CourseBaseDTO  查询条件数据--前台Json格式发送
     *
     * @return com.xuecheng.api.content.model.CourseBaseDTO   返回的对象
     **/
    CourseBaseDTO insertCouerseOne(CourseBaseDTO courseBaseDTO);



    /**
     * @Description //根据课程id查询课程的信息
     * @Date 2021/12/9 23:39
     * @Param [courseBaseId, companyId] courseBaseId为课程的id 。companyId为教育机构的id
     * @return com.xuecheng.api.content.model.CourseBaseDTO  封装的类
     **/
    CourseBaseDTO qyeryCourseById(Long courseBaseId, Long companyId);


    /**
     * 修改课程基础信息
     * @param dto CourseBaseDTO
     * @return
     */
    CourseBaseDTO modifyCourseBase(CourseBaseDTO dto);


    /**
     * 根据课程Id进行删除操作
     * courseBaseId  Long 课程的主键id值.
     * companyId  Long 课程所属的教育机构id值
     */
    void removeCourseBase(Long courseBaseId,Long companyId);


    /**
     * @Description 提交课程审核
     * @Date 2021/12/13 16:33
     * @Param [courseBaseId, companyId]  课程id和教育机构id
     * @return void
     **/
    void commitCourseBase(Long courseBaseId, Long companyId);

    /**
     * @Description //运营审核
     * @Date 2021/12/13 18:36
     * @Param [dto]  数据-->课程id,课程审核转态.课程意见
     * @return void
     **/
    void approveCourse(CourseBaseDTO dto);
}
